home *** CD-ROM | disk | FTP | other *** search
/ Apple WWDC 1996 / WWDC96_1996 (CD).toast / Technology Materials / MacOS 8 Resources / Developer Tools / Mac OS 8 Interfaces & Libraries / Interfaces / AIncludes / FixMath.a < prev    next >
Text File  |  1996-05-01  |  5KB  |  305 lines

  1. ;
  2. ;    File:        FixMath.a
  3. ;
  4. ;    Contains:    Fixed Math Interfaces.
  5. ;
  6. ;    Version:    Technology:    System 7.5
  7. ;                Release:    Universal Interfaces 3.0d3 on Copland DR1
  8. ;
  9. ;    Copyright:    © 1984-1996 by Apple Computer, Inc.  All rights reserved.
  10. ;
  11. ;    Bugs?:        If you find a problem with this file, send the file and version
  12. ;                information (from above) and the problem description to:
  13. ;
  14. ;                    Internet:    apple.bugs@applelink.apple.com
  15. ;                    AppleLink:    APPLE.BUGS
  16. ;
  17. ;
  18.     IF &TYPE('__FIXMATH__') = 'UNDEFINED' THEN
  19. __FIXMATH__ SET 1
  20.  
  21.     IF &TYPE('__TYPES__') = 'UNDEFINED' THEN
  22.     include 'Types.a'
  23.     ENDIF
  24.  
  25. fixed1                            EQU        $00010000
  26. fract1                            EQU        $40000000
  27. positiveInfinity                EQU        $7FFFFFFF
  28. negativeInfinity                EQU        $80000000
  29. ;
  30. ;    Previously in ToolUtils.i.  Moved here because it makes more sense.
  31. ;
  32.     IF ¨ OLDROUTINELOCATIONS THEN
  33.     IF FOR_SYSTEM7_AND_SYSTEM8_COOPERATIVE THEN
  34. ;
  35. ; pascal Fixed FixRatio(short numer, short denom)
  36. ;
  37.     IF ¨ GENERATINGCFM THEN
  38.         _FixRatio:    OPWORD    $A869
  39.     ELSE
  40.         IMPORT_CFM_FUNCTION FixRatio
  41.     ENDIF
  42.  
  43. ;
  44. ; pascal Fixed FixMul(Fixed a, Fixed b)
  45. ;
  46.     IF ¨ GENERATINGCFM THEN
  47.         _FixMul:    OPWORD    $A868
  48.     ELSE
  49.         IMPORT_CFM_FUNCTION FixMul
  50.     ENDIF
  51.  
  52. ;
  53. ; pascal short FixRound(Fixed x)
  54. ;
  55.     IF ¨ GENERATINGCFM THEN
  56.         _FixRound:    OPWORD    $A86C
  57.     ELSE
  58.         IMPORT_CFM_FUNCTION FixRound
  59.     ENDIF
  60.  
  61.     ENDIF
  62.     ENDIF
  63. ;
  64. ; pascal Fract Fix2Frac(Fixed x)
  65. ;
  66.     IF ¨ GENERATINGCFM THEN
  67.         _Fix2Frac:    OPWORD    $A841
  68.     ELSE
  69.         IMPORT_CFM_FUNCTION Fix2Frac
  70.     ENDIF
  71.  
  72. ;
  73. ; pascal long Fix2Long(Fixed x)
  74. ;
  75.     IF ¨ GENERATINGCFM THEN
  76.         _Fix2Long:    OPWORD    $A840
  77.     ELSE
  78.         IMPORT_CFM_FUNCTION Fix2Long
  79.     ENDIF
  80.  
  81. ;
  82. ; pascal Fixed Long2Fix(long x)
  83. ;
  84.     IF ¨ GENERATINGCFM THEN
  85.         _Long2Fix:    OPWORD    $A83F
  86.     ELSE
  87.         IMPORT_CFM_FUNCTION Long2Fix
  88.     ENDIF
  89.  
  90. ;
  91. ; pascal Fixed Frac2Fix(Fract x)
  92. ;
  93.     IF ¨ GENERATINGCFM THEN
  94.         _Frac2Fix:    OPWORD    $A842
  95.     ELSE
  96.         IMPORT_CFM_FUNCTION Frac2Fix
  97.     ENDIF
  98.  
  99. ;
  100. ; pascal Fract FracMul(Fract x, Fract y)
  101. ;
  102.     IF ¨ GENERATINGCFM THEN
  103.         _FracMul:    OPWORD    $A84A
  104.     ELSE
  105.         IMPORT_CFM_FUNCTION FracMul
  106.     ENDIF
  107.  
  108. ;
  109. ; pascal Fixed FixDiv(Fixed x, Fixed y)
  110. ;
  111.     IF ¨ GENERATINGCFM THEN
  112.         _FixDiv:    OPWORD    $A84D
  113.     ELSE
  114.         IMPORT_CFM_FUNCTION FixDiv
  115.     ENDIF
  116.  
  117. ;
  118. ; pascal Fract FracDiv(Fract x, Fract y)
  119. ;
  120.     IF ¨ GENERATINGCFM THEN
  121.         _FracDiv:    OPWORD    $A84B
  122.     ELSE
  123.         IMPORT_CFM_FUNCTION FracDiv
  124.     ENDIF
  125.  
  126. ;
  127. ; pascal Fract FracSqrt(Fract x)
  128. ;
  129.     IF ¨ GENERATINGCFM THEN
  130.         _FracSqrt:    OPWORD    $A849
  131.     ELSE
  132.         IMPORT_CFM_FUNCTION FracSqrt
  133.     ENDIF
  134.  
  135. ;
  136. ; pascal Fract FracSin(Fixed x)
  137. ;
  138.     IF ¨ GENERATINGCFM THEN
  139.         _FracSin:    OPWORD    $A848
  140.     ELSE
  141.         IMPORT_CFM_FUNCTION FracSin
  142.     ENDIF
  143.  
  144. ;
  145. ; pascal Fract FracCos(Fixed x)
  146. ;
  147.     IF ¨ GENERATINGCFM THEN
  148.         _FracCos:    OPWORD    $A847
  149.     ELSE
  150.         IMPORT_CFM_FUNCTION FracCos
  151.     ENDIF
  152.  
  153. ;
  154. ; pascal Fixed FixATan2(long x, long y)
  155. ;
  156.     IF ¨ GENERATINGCFM THEN
  157.         _FixATan2:    OPWORD    $A818
  158.     ELSE
  159.         IMPORT_CFM_FUNCTION FixATan2
  160.     ENDIF
  161.  
  162.     IF GENERATINGPOWERPC THEN
  163. ;
  164. ; extern short WideCompare(const wide *target, const wide *source)
  165. ;
  166.     IF GENERATINGCFM THEN
  167.         IMPORT_CFM_FUNCTION WideCompare
  168.     ENDIF
  169.  
  170. ;
  171. ; extern WidePtr WideAdd(wide *target, const wide *source)
  172. ;
  173.     IF GENERATINGCFM THEN
  174.         IMPORT_CFM_FUNCTION WideAdd
  175.     ENDIF
  176.  
  177. ;
  178. ; extern WidePtr WideSubtract(wide *target, const wide *source)
  179. ;
  180.     IF GENERATINGCFM THEN
  181.         IMPORT_CFM_FUNCTION WideSubtract
  182.     ENDIF
  183.  
  184. ;
  185. ; extern WidePtr WideNegate(wide *target)
  186. ;
  187.     IF GENERATINGCFM THEN
  188.         IMPORT_CFM_FUNCTION WideNegate
  189.     ENDIF
  190.  
  191. ;
  192. ; extern WidePtr WideShift(wide *target, long shift)
  193. ;
  194.     IF GENERATINGCFM THEN
  195.         IMPORT_CFM_FUNCTION WideShift
  196.     ENDIF
  197.  
  198. ;
  199. ; extern unsigned long WideSquareRoot(const wide *source)
  200. ;
  201.     IF GENERATINGCFM THEN
  202.         IMPORT_CFM_FUNCTION WideSquareRoot
  203.     ENDIF
  204.  
  205. ;
  206. ; extern WidePtr WideMultiply(long multiplicand, long multiplier, wide *target)
  207. ;
  208.     IF GENERATINGCFM THEN
  209.         IMPORT_CFM_FUNCTION WideMultiply
  210.     ENDIF
  211.  
  212. ;  returns the quotient 
  213. ;
  214. ; extern long WideDivide(const wide *dividend, long divisor, long *remainder)
  215. ;
  216.     IF GENERATINGCFM THEN
  217.         IMPORT_CFM_FUNCTION WideDivide
  218.     ENDIF
  219.  
  220. ;  quotient replaces dividend 
  221. ;
  222. ; extern WidePtr WideWideDivide(wide *dividend, long divisor, long *remainder)
  223. ;
  224.     IF GENERATINGCFM THEN
  225.         IMPORT_CFM_FUNCTION WideWideDivide
  226.     ENDIF
  227.  
  228. ;
  229. ; extern WidePtr WideBitShift(wide *src, long shift)
  230. ;
  231.     IF GENERATINGCFM THEN
  232.         IMPORT_CFM_FUNCTION WideBitShift
  233.     ENDIF
  234.  
  235.     ENDIF
  236.     IF GENERATING68K ** ¨ GENERATING68881 THEN
  237. ;
  238. ; pascal double_t Frac2X(Fract x)
  239. ;
  240.     IF ¨ GENERATINGCFM THEN
  241.         _Frac2X:    OPWORD    $A845
  242.     ELSE
  243.         IMPORT_CFM_FUNCTION Frac2X
  244.     ENDIF
  245.  
  246. ;
  247. ; pascal double_t Fix2X(Fixed x)
  248. ;
  249.     IF ¨ GENERATINGCFM THEN
  250.         _Fix2X:    OPWORD    $A843
  251.     ELSE
  252.         IMPORT_CFM_FUNCTION Fix2X
  253.     ENDIF
  254.  
  255. ;
  256. ; pascal Fixed X2Fix(double_t x)
  257. ;
  258.     IF ¨ GENERATINGCFM THEN
  259.         _X2Fix:    OPWORD    $A844
  260.     ELSE
  261.         IMPORT_CFM_FUNCTION X2Fix
  262.     ENDIF
  263.  
  264. ;
  265. ; pascal Fract X2Frac(double_t x)
  266. ;
  267.     IF ¨ GENERATINGCFM THEN
  268.         _X2Frac:    OPWORD    $A846
  269.     ELSE
  270.         IMPORT_CFM_FUNCTION X2Frac
  271.     ENDIF
  272.  
  273.     ELSE
  274. ;
  275. ; pascal double_t Frac2X(Fract x)
  276. ;
  277.     IF GENERATINGCFM THEN
  278.         IMPORT_CFM_FUNCTION Frac2X
  279.     ENDIF
  280.  
  281. ;
  282. ; pascal double_t Fix2X(Fixed x)
  283. ;
  284.     IF GENERATINGCFM THEN
  285.         IMPORT_CFM_FUNCTION Fix2X
  286.     ENDIF
  287.  
  288. ;
  289. ; pascal Fixed X2Fix(double_t x)
  290. ;
  291.     IF GENERATINGCFM THEN
  292.         IMPORT_CFM_FUNCTION X2Fix
  293.     ENDIF
  294.  
  295. ;
  296. ; pascal Fract X2Frac(double_t x)
  297. ;
  298.     IF GENERATINGCFM THEN
  299.         IMPORT_CFM_FUNCTION X2Frac
  300.     ENDIF
  301.  
  302.     ENDIF
  303.     ENDIF ; __FIXMATH__ 
  304.  
  305.